#include "soft_delay.h"

// 定义每微秒需要执行的大约循环次数
// 注意：这个值可能需要根据实际情况进行调整
// 例如我的stm32f405频率168MHz
#define DELAY_MICROSECOND_LOOP_COUNT (168 / 4)

#pragma GCC push_options    //禁止编译器优化这段代码
#pragma GCC optimize ("O0")

void softDelayMicro(uint8_t us)
{
    while (us--) {
        volatile uint32_t counter = DELAY_MICROSECOND_LOOP_COUNT;
        while (counter--);
    }
}

#pragma GCC pop_options